#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>

#define MAX 102

char A[MAX];
char B[MAX];
int AZ[MAX];
int BZ[MAX];
int AX[MAX];
int BX[MAX];

int calSump(int a[], int b[], int n) {
    int ci = 0;
    for(int i = 0; i < n; i++) {
        int temp = a[i] + b[i] + ci;
        int ben = temp % 10;
        ci = temp/10;
        a[i] = ben;
    }
    return ci;
}

void calSumz(int a[], int b[], int n, int ci) {
    for(int i = 0; i < n; i++) {
        int temp = a[i] + b[i] + ci;
        int ben = temp % 10;
        ci = temp/10;
        a[i] = ben;
    }
    a[n] = ci;
}

int max(int a, int b) {
    return a>b?a:b;
}

int main(int argc, char const *argv[])
{
    
        scanf("%s",A);
        scanf("%s",B);
        int azw = 0, axw = 0;
        int bzw = 0, bxw = 0;
        for(int i = 0; i < strlen(A); i++) {
            if(A[i] != '.') {
                azw++;
            }
            else {
                break;
            }
        }
        //11.12 5 - 2 - 1 = 2
        axw = strlen(A) - azw - 1;

        for(int i = 0; i < strlen(B); i++) {
            if(B[i] != '.') {
                bzw++;
            }
            else {
                break;
            }
        }
        //11.12 5 - 2 - 1 = 2
        bxw = strlen(B) - bzw - 1;

        memset(AZ, 0, sizeof(AZ));
        memset(AX, 0, sizeof(AX));
        memset(BZ, 0, sizeof(BZ));
        memset(BZ, 0, sizeof(BZ));

        for(int i = azw - 1,j = 0; i >= 0, j < azw; i--,j++) {
            AZ[j] = A[i] - '0';
        }
        for(int i = bzw - 1,j = 0; i >= 0, j < bzw; i--,j++) {
            BZ[j] = B[i] - '0';
        }
        //0.123
        //0.123456789
        int maxz = max(azw, bzw);
        int maxp = max(axw, bxw);
        if(axw < bxw) {
            int j = 0;
            for(j = 0; j < (bxw - axw); j++) {
                AX[j] = 0;
            }
            for(int i = strlen(A) - 1;j < bxw,i > azw;j++, i--) {
                AX[j] = A[i] - '0';
            }
            for(int i = strlen(B) - 1, k = 0; i >= 0, k < strlen(B); i--,k++) {
                BX[k] = B[i] - '0';
            }
        }
        else {
            int j = 0;
            for(j = 0; j < (axw - bxw); j++) {
                BX[j] = 0;
            }
            for(int i = strlen(B) - 1;j < axw,i > bzw;j++, i-- ) {
                BX[j] = B[i] - '0';
            }
            for(int i = strlen(A) - 1, k = 0; i >= 0, k < strlen(A); i--,k++) {
                AX[k] = A[i] - '0';
            }
        }


        int pci = calSump(AX, BX, maxp);

        calSumz(AZ,BZ, maxz, pci);

        bool isAll0 = true;
        for(int i = maxz + 1; i >= 0; i--) {
            if(isAll0 && AZ[i] != 0) {
                isAll0 = false;
            }
            if(!isAll0) {
                printf("%d", AZ[i]);
            }
        }
        if(isAll0) {
            printf("%d",0);
        }
        printf(".");

        int last = maxp-1;
        for(int i = 0; i < maxp; i++) {
            if(AX[i] != 0) {
                last = i;
                break;
            }
        }
        for(int i = maxp-1; i >= last; i--) {
            printf("%d", AX[i]);
        }
        printf("\n");
    
    return 0;
}
